最近測了一些 RamDisk , Cache , 軟體還原 的工具軟體, 覺得有時候想比較綜觀地看一下這些軟體特性, 所以就整理了一下.
這張圖只是用來解釋一下各種軟體大概出現的位置, 有些軟體可能會有不同的設計, 所以僅供參考.
要說明這些軟體之前, 首先都要有個前提: CPU 內的暫存器與 Cache 最快, 記憶體其次, SSD 目前比硬碟快一些, 硬碟最慢; 硬碟平均成本低, SSD 其次, RAM 較高.
再來則是延伸幾個特性:
了解這些前提與原則之後, 接下來就可以開始看看這些軟體的特性:
RamDisk : 由於使用記憶體模擬出磁碟, 所以速度極快, 可讀寫次數也遠大於磁碟, 但是因為關機後就無法保存資料, 所以適合"頻繁讀寫", "容量已知或可控制".
快取軟體: 將記憶體保留一部份, 並攔截讀取/寫入磁碟的動作, 當需要讀取的資料已經在記憶體中, 就不用再讀取實體硬碟; 當需要寫入資料時, 也可以先保留在記憶體, 再一次寫入. 不過也有斷電時, 未完全回寫磁碟, 而資料損毀的風險.
目前市面上的作業系統都有內建這種功能, 只是為了安全考量, 通常只有讀取快取, 而沒有寫入快取; 並且為了記憶體用在實際執行程式, 快取空間並不會很大, 所以快取軟體可以讓使用者為了特別的需要, 另外擴充快取空間.
還原軟體: 也是攔截讀寫磁碟的動作, 而著重在寫入的攔截, 比快取軟體著重是否允許異動控管, 而異動的保留區, 也依軟體而不同, 例如: 微軟提供 ewf 與 fbwf 給 Embedded 版的作業系統, 保留區是使用記憶體; 而市售某些還原軟體, 是以隱藏的分割區來保留異動的部份.
了解這些軟體的特性後, 再來考慮使用者可能的動作, 選擇較合適的應用:
頻繁讀寫但不重要的檔案, 例如: 解壓縮暫存檔, 瀏覽器快取等; 因為檔案的產生與刪除都是由程式自動處理, 所以設定在 RamDisk 是最常見的作法.
頻繁讀寫但是有需要存檔的檔案, 例如: 一般工作的檔案, P2P 的暫存檔. 如果記憶體夠大, 可以開 RamDisk 來存放, 而開或關機時再讀入或回寫, 不過也會需要一段時間轉移這些資料. 另外也可以用快取軟體, 針對分割區處理, 則可以減少轉移的時間.
讀取需要而不需要寫入的檔案, 再考慮用還原軟體, 並且設定為不寫入, 例如: 商務或電腦教室使用的電腦, 並不太需要開放寫入(安裝)程式, 所以把資料跟程式分開, 在 Windows 常見分為 C: 與 D: , 也是有這方面的意義, 這樣程式區(一般是 C: )就幾乎不用寫入.
由於這些軟體的應用, 往往是以分割區(Partition / Volume)為單位, 所以就會把檔案依這些特性分類:
找出這些特性後, 再配合不同的軟體, 來發揮記憶體的特性, 提高系統效益, 以個人為例:
這樣依不同用途, 可以彈性調整記憶體用量, 來減少磁碟讀寫的次數, 壓榨系統效能~